<?php 
	class Register extends CI_Controller {
		public function __construct() {
			parent:: __construct();
			$this->load->helper("url");
			$this->load->library("my_layout"); // Sử dụng thư viện layout
			$this->my_layout->setLayout("layout/frontend"); // load file layout chính (view/layout/frontend.php)
			$this->load->helper(array('form', 'url'));
	        $this->load->library('form_validation');
	        $this->load->database();
	        $this->load->model('Musers');
	        $this->load->helper('captcha');
	        $this->load->helper('path');
	        $this->load->library('session');
		}

		public function form() {
	        $data['title'] = "Đăng Kí";
	        $data['description']= "";

	        $config = array(
	        	array(
                     'field'   => 'fullName', 
                     'label'   => 'Họ Và Tên', 
                     'rules'   => 'required'
                ),
               	array(
                     'field'   => 'username', 
                     'label'   => 'Username', 
                     'rules'   => 'required|is_unique[users.users_Name]'
                ),
               	array(
                     'field'   => 'password', 
                     'label'   => 'Password', 
                     'rules'   => 'required'
                ),
               	array(
                     'field'   => 'passconf', 
                     'label'   => 'Password Nhập Lại', 
                     'rules'   => 'required|matches[passconf]'
                ),   
               	array(
                     'field'   => 'email', 
                     'label'   => 'Email', 
                     'rules'   => 'required|valid_email|is_unique[users.users_Email]'
                ),
                array(
                     'field'   => 'captcha', 
                     'label'   => 'Mã Bảo Vệ', 
                     'rules'   => 'required|callback_captcha_Check'
                )
            );

			$this->form_validation->set_rules($config);
	        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
	        $randomValue = $this ->randomValue();
	        $this->session-> set_userdata('memWord', $this->session-> userdata('word'));
            $this->session->set_userdata('word', $randomValue);
	        //captcha

	       

			$val = array(
                "word"      =>  $randomValue,//chổ này các bạn có thể thêm các ký tự của các bạn cũng được ví dụ như tên của bạn chẳng hạn he he, tôi để trong cho nó tự random.
                "img_path"  =>  "./captcha/",//đường dẫn để tạo img captcha.
                "img_url"   =>  base_url()."captcha/",//đã là đường dẫn để hiển thị hình ảnh sau khi tạo xong captcha
                'font_path'	 => base_url().'fonts/texb.ttf',
                "img_width" => 150,//chiều dài của captcha
                "img_height"=> 30,//chiều cao của captcha
                "expiration"=> 7200 //thời gian hết hạn của captcha
                );
			
	        $cap = create_captcha($val);
	        $data['captcha_image'] = $cap['image'];
	        if ($this->form_validation->run() == FALSE)
	        {
	           $this->my_layout->view("frontend/form",$data);
	        } else {
	            $data['name'] = $this->input->post('username');
	            $data = array(
	               'users_FullName' => $this->input->post('fullName'),
				   'users_Name' => $this->input->post('username'),
				   'users_Pass' =>  md5($this->input->post('password')),
				   'users_Email' => $this->input->post('email'),
				   'users_Type' => 1
				);
				$this -> Musers -> insertUser($data);
				$this -> registerOk();
	        }
	    }

	    public function registerOk()
	    {
	    	$data['title'] = 'Đăng Kí Thành công';
	    	$data['description']= "";
	        $this->my_layout->view("frontend/formsuccess", $data);
	    }

	    public function randomValue(){
	    	$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
	    	$word = '';
	    	for ($a = 0; $a <= 5; $a++)
	    	{ 
	    		$b = rand(0, strlen($chars) - 1); 
	    		$word .= $chars[$b]; 
	    	}
	    	return $word;
	    }

	    public function captcha_Check($str)
		{
			if (strtoupper($str) != $this->session-> userdata('memWord'))
			{
				$this->form_validation->set_message('captcha_Check', '%s Bạn Nhập Không Khớp Với Mã Bảo Vệ.');
				return FALSE;
			}
			else
			{
				return TRUE;
			}
		}
	}

?>
